/*
 Navicat Premium Data Transfer

 Source Server         : 本机mssql
 Source Server Type    : SQL Server
 Source Server Version : 13004001
 Source Host           : .:1433
 Source Catalog        : MyBlogs
 Source Schema         : dbo

 Target Server Type    : SQL Server
 Target Server Version : 13004001
 File Encoding         : 65001

 Date: 14/07/2018 13:37:12
*/


-- ----------------------------
-- Table structure for __MigrationHistory
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[__MigrationHistory]') AND type IN ('U'))
	DROP TABLE [dbo].[__MigrationHistory]
GO

CREATE TABLE [dbo].[__MigrationHistory] (
  [MigrationId] nvarchar(150) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [ContextKey] nvarchar(300) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Model] varbinary(max)  NOT NULL,
  [ProductVersion] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL
)
GO

ALTER TABLE [dbo].[__MigrationHistory] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of __MigrationHistory
-- ----------------------------
INSERT INTO [dbo].[__MigrationHistory]  VALUES (N'201807081040370_AutomaticMigration', N'Models.Migrations.Configuration', 0x1F8B0800000000000400ED5D596FDC48927E5F60FF43A19E66071E952DB73DD386340359B2DB425B76B5CB72EF9B91225325A259640DC9B2250CF697EDC3FEA4FD0B93BC92791F64F228B960C050E5F1451E119191C1CCC8FFFFDFFF3BF9C7FD269C7D83491AC4D1E9FCD9D1D3F90C465EEC07D1FA74BECB6EFFF2B7F93FFEFE9FFF71F2C6DFDCCFBED4E59EE7E550CD283D9DDF65D9F6D562917A777003D2A34DE025711ADF66475EBC59003F5E1C3F7DFAF3E2D9B30544107384359B9D7CDA4559B081C50FF4F33C8E3CB8CD7620BC8A7D18A6553ACA5915A8B30F6003D32DF0E0E9BC2C7174B6DD86810732D49CF9EC2C0C006AC90A86B7F31988A2382B325E5DA770952571B45E6D5102083F3F6C212A770BC21456ED7FD51437EDCAD3E3BC2B8BA6620DE5EDD22CDE58023E7B5E8DCD82ADDE6A84E778ECD0E8BD41A39C3DE4BD2E46F074FE3A8981EF81349BCF586AAFCEC3242F8947B8AC7C84AB3C9995194F301B206EC9FF3D999DEFC26C97C0D308EEB204844F66CBDD0D9A9D5FE1C3E7F80F189D46BB30241B869A86F2A80494B44CE22D4CB2874FF0B66AEEA53F9F2DE87A0BB622AE46D429FB711965CF8FE7B30F8838B809219E77A2CFAB2C4EE02F308209C8A0BF0459069328C78045E739EA0CAD371B10843539C4694868E6B32B70FF1E46EBEC0E8D24B89FCFDE06F7D0AF53AA265C4701923154294B765047E50B08031FB5EF1CD5E89DD8F53627F51909674DEA02FFE646520DB5DADDA45E12DCC01C07371CC9E81193638B8B266F97D280559212E964D1C883524ACE518FD771F2602E24758D838C70B4F2FF155CFBF22723A6B564910B98F3D7B6D4A23D4B4C5B7644481FC0B7605D8C3283B98C7315FD098645667A176C2BE49AD1BE9625DE26F1E6531C123C5B647C5DC5BBC4CB873D16E57E06C91A6676AD79172049481E2AB6D6B78D2D2F69295D4CDD6EA6ACA817C6225E0E9FA978E7A50FA2CDD1FA1C64A18B15C952B8CF76D95D9C28E81EF7A25390919AA17119BEBFE86706BDCC1D7D0D39C4ECF99ACFAFFFCB047A41B901786ADD0B243DC1ED430FC09769D1E5CFF1B6067E1D23E50122FB19AEB48D5E86D4389F605AE831CDD2E766BA2ED3DFE3C4BF88BDDD86E08EB643E0CAA2B524FB1EDC4015D9E3172F1D0C15D29DDFD158F54EE70B92D7EBED79BC6BE6A31D23E54017F1F7C8084AAFD7CFE3CD768712F42CF51A81C1A42B33995961C72F5EB810830D58C3EB44CD442E08F561EE351B8EF6265F6D0E894DBEDAB0326E51BC29D589A04105202ED0B4874CE72C392AB38D017AE679304D3F41AF906059B3F8924CFBD802E28672A57A32993131B9B92C29226FB78199AC6AF90A6E820824F2E6E2024C1BAB7471C3EACC4E463BE639E36D7959E160BAF3BBF2C0FB43639EF463450FE332FBEDB738F91D7A77A07F7379BC6D014810DDAEB66A2E9D5D312A3113DBF69658AF93F87B0A95BB3B27CBF8C76D2E39087BF5906670D3BF7D925E0144A8B34D959B840E2CCBB33508A234738074B97C5C1E3623EB8635B684A64F6BC7146DC0D838A9C89A8755AF1765570EB1930F24E768CCFF702082C3CB87BD992D9418A931DE5A74583BDA4678E8BA07F1B1F6F7F6F32DE747F1BB7E09E07707CA40E5671DC91FEA42ED3E629FAA1B0353EF42DD7FEF57BB8F8A4ACF98C4ABE26E99B4F7EC4897CA8E6DD579765878B19F475C4AE8F59114EDE403C2AD325DD9AB0A87E57C2A9F6F57BB1B5794873C0432799B5CE79715AA15567C7BF06F77522BA2466B34504BD77294012F4B6D7CCB658D8362998A62517FFD9B989C1B73E6451C15B6BC295F96E50F5CD9E693879B75E7D17DE2283A7411A4DB103C0CD8AFA1289E6DC85D778FFB7BD0BFC95308BF9BD3DB7D2B3624F1487E417805D314AC2D341C53F1A0EA7A5B808772CC693C1B41F447EF449CC8CC2708F02CB7F5160D2377DF02F8DD52E2F22AFB286BB957BA4759BB0E30B15F76F9DFD3FB7E7A9DC2E46C3D84A89A7F557743AF3A2D405D30EAD33FEF444BE41B5F377B159D7E46664DD2BFFD847E7E0B226F00B7FCAA7F59799765DB2B98DDC5AA63C28EEC4EDF4F9009D33B1DA44B6102D1040D45F03D88901E5DF7CF101FA33088E06A0BFABFE5D5905A412F8E7C3C8A17315AE70C9480D4958617D70B98A17D562A74A43185BE128B78E3479316E2DC68F2929DBC680C6C0B03A3AC7830337A726E0D6003E3A9D48F8EB584F4211AEC872BBD10B5138D34DDD9EC71F3E2FB2806E3DE26EEC9C93B8C476F24B7B9A3EDF5A837B46DBB0CBF1167257225F27AB7AE12EDBF666E82CC89E67C87CCA650E2BCD39CF949D7FD1BDFCBA1CCC7DE3D20EF21F806ADDD8E64AD8366EEF3F3CADE1C10ECE7A6F4A3FB7EE4E6A6CAE166C8E88EC4FE3533B2452CCE6014C50FBA782256F228E72FDEDCE791E326FFD1E57DBC0E22DB1B3D44A503938FA1EF8A097062DB0FE6235FDE3DA4813798A7B718A00726BC1B916AAB42D0027F19DDC65D6D853E4E5FD66D133AA1EACCAF94A037FE27513EE7951516EAE4906DDA6CAA73EA1A07852364CE68949575BCBDD512A4A926664E5F072B4198A1D91F9EF0657AE66F82A8AB49F1E8767167DF400654DB2F4764CAFBB5B92699EC7E46B54C500B80AB9582FD48A15C4E5AAD145730DA99AF1279E9C30A31917DD7A5374094D3710ED7C749C7DBB06E5C4F39BB73566E9368BB9AC3EF9FC1CDE4B7AC5741EA59680454FAA011A6F24DEFB1B9C47B0B1EDABB147D88B3C0B3F8CA54963F48D24192F64C921C85AFE85D20571024DE1D3E6B677E8D9CA876104F8E166A4B1E33C385CBD196638A99117B69BB059676ED6036E7D1E2CBE30A665941D69847C96A071E9DC8F6EC0B0877239075AF48771B9245E9275C2ED3B72158376F2B19B0EC6E43BF03D39561D178F930091FD0F8920C450FD215DCDCC0A4395150BF86544C52A124168A0A670932CE425839A7AA3ACFF8F12B474A357AD54CB41CB6A2F6F0E375016F0142361EAD6F68AD04C5E178F150B115DEC6C94DE0FBC4D81EAB2B5CC01016F1CCABE2CFD5C59730F20BE9AB8AFFA42F4E80BF5097AE799924F0D2AC0A41E4AF9A0ED757A2ABE27F53177F478FE6CF9AE67877D0DF91D3A599E073107968069AD63FD34CF0EF20C897A6F2A063534B33CB6571828A669AAF23C073DE4F2DA4B43914DA424ECBC7D32A84E165B55C254353595DC12488738D6426A9E5A98BE2ECAE99A4BE0519D198E72D2683F8A8DC4E6B6280C92BCEDF7E339D87FAD38FD924FC0E5F87F1BAD32C344ECF769350D71F7E0EAE4010951F390C2562774315D7CCC42F200C61F24055D14C47EEB7A7CA1B4DC8599AC65E500C31E129C0118B697A6F227FA67A9CA1B10DCBD8525768EC83FC614DA4BCF22EB336FFC7A85C7267675EF9C0E539483DE0F3C6286ABA6FD4147C06A2690A0EBE4CB7E6CF1C91EA6263FEB2E7791CA5885B8228E3B72941E4055B102A0682A963B8B9C9BB89D1D99C0BB8CDCD87285374DA846C1D3B93278D293023AF1B959305C142069CC5C5FA55CEABFC7D8DF1784D1E8C986E131DD1B83FEE938DD1506C281B8FBDE0474938391503E84256D25CC086B5D3F181112D01C7E140784A026DA495E9815636642FCB8C2BB1B2A8A8DD66AB9BD48A476A48B9158FCA5E48AE91ACEAA4D3561E079540FAA92E59B3244FB51206100E883C88C449DE11B31DF75692251C8B01E449D86713BA644CF45124491510DB6886F5DA5ECE7F7259330AC03D82EA36E8FAD0ECD65E858FCE7CF2580B32BE3008BCD07005173FC45CD71BC43E11D0E955C3B6E2576D3F06E056ED9C19B5818C03320AB30A4FDACAF8477DECB6619DE646C5206BB3FADE0873E5A6D79DAB6A8006E049D5409890276F160DC08DA5FFBF88111E448D1F1864A03850742F7AC41235B1F299A6D5375F962B72CC15CCF8CF97CD27DB3A9E4593C7A94C1AA559EC3990264B83511A885CFD325947BFF6F6F1E4EB1C03EAB4EB46D812BA8801266B9F0851D9421A5CBCE5E0C0708E76BCEA48F58201ABB33418754C710EA1CED0D4E742F772405C0913C4724516639579A628F878971CAC36317490792026215019D049539D0E35C281D0D93AACF2723C0F52A6EB6A932B048F41E66A909A25908369B23418E5770FAE7E99ACAB5B1C4CE7EB16C99ABAF5715CAE769DA1955FEAF4A0408AA97C1D1A7DCE8B47A3F3193462E9A11557F37C255184D059E28F45FACF45B8F9B5C6E71652CD471E0240A6DC1774AF4C7BCC2B7849D7D55F332CBE67580F86F42B0483A45CA7DA0D8FEC0916F1189978D86D7DEC4C1FD5ABA6AD539D0097ADA21DD88A6DAB82B154EE182BD77B2BE692785DAC86BEED406958CA9089746CA31F8741588376F30ABAACF0031B7882492D29B1C00DFCB79AA1EBDA6DBD54183B2AAD5D959D06682429514429E587CED0CD66E96823BAC81BCA8AE1D3BBD644C80EC64C7C559A1F2EBDA3C7DCD543744566CC9A3B68083095812D1F99FA30367624E0BC93457E5C7303AA8493052A929FC9DBA13D5771B2AACEB802DB2DB21ED3A66695325B6D81974BC75F56F3D9FD268CD2D3F95D966D5F2D1669019D1E6D022F89D3F8363BF2E2CD02F8F1E2F8E9D39F17CF9E2D3625C6C24BC98166DD1E98129225B4C361727323D0876F83A4B8E8046E407E8CECDCDF70C548B789C4A0AE29B19E117EE26A13BBAE91FF8DAF46E5E7D4CEB6B9EBAC988C232950338C6F51CF724BB6E82424665C5117D55E79200489E032C4791CEE3691DC6726AF5D459C2001AA24738C2F200C7CA42EF399A1A1E81C73C4EBAD8FAFE3907864BA391A73ED800464B22C30ABC3F8145895C6A39C2C9889E79C891C8F71EE5E9A698D581A2F741D395A8663C0D0F2AAFDF073795D87AC5FA6982350418649202AE391718AC4E6B4E2121186018788ABF5C31DD57D6012A04A32C738DB6577714283D469E628F88A30098313CD7196CC7BF3241C9B67818AEF11537838D51C89BC3A4C6291E9E668976971E7ED73BC65B88048B79803E2CB38350D8A2FE67234FAB179128FCEB1E92DFDA23CDD633A6FD815BF7A379EC4A892CC317E850F6590301205275A581F88C9AFB7D52D72CAF82033ECF02EE2EF910491C8B299C9D7208A60C2CE619D3ADEEA74B941367611A7876A194E7D64EB9CDC896D671089614CEC2159CD9ECC211C0490328970EAB06A830C3C470291E9232CA138DC13B5D8E154BB6593C3919CA055F5AB60117ECDA432CCF1700C74120B279AE37031CE493C2ED34639D6B1CC69E558A7DAA96E89DAB656D9676B1044692680A3732CFAB9647AB87C74EAD5E04399F596428567B8BD5043F4A379DDE8822AB025E70821D32D340B1AD83F041C4DA63F428ED47E47B0E64935A22157EA40A6BB059EF6E695082A45AD024DF258DB57B71B4E371AE6B06DB5DBB6EE85D6937F39B75275121803FD26AD395DA5B6DADD08609AD4830799E421C1CEBA3A47DA796B2DC631DA5BCBAA4E97EB38D7CB63F4BA5427843B728618C5802F64150F2E175B974B411EC793E21A8673DAB44F082BC8B6D83C6D049BF78DB53F3800AC2109AC568382FBF82D1C99FEC8E49D3DC8DF51F03570061A408B30DD05C2D55EAB7CB197327D8B149BDEB02C6CCBBC9F20F0D93D06B01AD1FD617FC9C93B7BC6170199B2BCB86E3FCC7E1D30D58B84A1DCA3F991BAB335272844F2F88EEECAE7CE9F42A232EC1C1DBC5036A9E648F94B329C258A136D94155A5C930756595589568EA1EAE53BC62554A55A70D58A65AB95155FBDCBB2ED15CCEE6286B9C9740B8BA47E628F3249EA441B455A5C31F5A01090CFB5719144FEB2B858467B49EA540B298AC22082AB2D6036C1647A1BB415F4E2C84F65A0387B7ACB417D6EDAD5AA50DD46ECB036C8107A5A213AEE75BB1B20547C01AA23AAC003E3714E798FB42BBF14974E5B7089B85E4FBB667EC73CC26ED985C1DEDDD076ED3FACE211534D2A93ACBCA39B20E325904CB758558BE8CC3C1A996EF191265D335F6752EEE2ABAAFEE552B88C12C98F6C8342DD20EFA85D5458064A465D7DEA1E3A671F429D9DB79D9ECFD0DDF1AA1FE720D30F7054A80C40D155F988404CB48EB8DE544D9BAE867319799FD10A55DA63632BE56D4E3BE6924399B098AA763F8CD64D6B944F1D702619913C86FF6679F790069ED03E63B26C7BCA79E188643BBF631D228C753CCA4287C9D1F642C4F015E78EF225C331102E79D59E3C1769FEF988BB8D8A53C7B03D97204DF90B344DAA05D78130FB15325E5B9C6863FF9CF99B2062CD9F2A719F6DD8FA197BCA6D5BA5591FE62D1F02139CE62D331E99B628A27375D414220C032D21AE365523AF7C919D6A8167E7E7E97C96A878399DE2A622658CBD5EF36610E5D8C1A9163353BD9C4ECD4D95F6D8642D8F66D755D6041826B226ACD68FAC4DE958C5546F4AEF05BF56F1133B72AC18C5806765150F5C3B16D7BABCBAB117124087FEEC28084A300379D0D4EF472C9A37C0498C26D562C28937BDA94927D25D3B53C6621B2AC66B57B6518199B08DBAFE54EDEDEA896D4ACF9449FBAA63E88870BA7B904DF84DCBEB8E4D45FDAD4645084FC192A48E07CB8FA7115F0980C5F1FC8936756AAEF48101A3E6D628766D64C301B6E20F0B8E50F380DDAC3B9C6757333BF1B9E4223CB245B0A6A952F06F1CE1B18AAE48857D2CBA9507712CBA9356911ED9708B6591F9ACF0E6FB79A8C5720138CA0B1CADFE199E8741618ED605AE4014DCC2342B5FE29D1F3FCDDFEE3E0B039096A138AB4092AFD8B72D8C224B3E7B9E479684FE66C156B78F4F99A3A4A94F9D872316D3E62BB42844E3093259D829AEA757F5A0C9C982AD7822E0AA32BE7B900F6B2170E54BDD19F49720CBAF36E4A560D1D2F9ECC32E2CDE31C7AF2C2F94F0956BB5A4107DCB6D2590FC6903EEFF8B842A9E16D120D1D11E1D0092E11E4BB8FC7756FCB6EC2513E891184F5BA06A793745201775255F892325EE2D5B95E618CD04F3D915B87F0FA37576773A7FF993352675FECD017FF5369782A71CF7751E2B1F8566B48DA0EA28890AA638B6670AECFE70D1C4251375C20193355E155A851DE72B24F482E221FBFC6179CBA6921E16B7C86434C512F926B0579464500B823FB917AC2E231FDE9FCEFF55547B35BBFCEFAF4DCD27B38F09B2205ECD9ECEFEC7BA0174FC0A0733C906AF683F36666BAE115415C04225532F5EDAF6148761740B4B45646CBF04336118F5CAEF3CDE6C7728A18524D4111ADBCFB562D162C6F3853543E2308D6E71FBB37144D10FF776696C4E6DB85DD1DC59E4E4690707706E975AFC55B8BD26A8C31DD9AD2F65AD4E6B0B158A51B5FAFED51A1A1F68762BD3DCB966C7AA089F726EAF2989388DED59828ECED81E27F7F74F7D8B218F6BB8B73A75348926232A76F43590E11427E868D0BE01BFAFBC23DCAA76F5394C7D7B497C1B6FCF6BA67B49FBD56CF45DE0680A65DFB69F5D2D00938DE8747622C24F548F4BF3B553514DC043072C6BE3B01DD9FB2E8C1D786088EA10F1A4E74E14DF6F6F674EE65468257F93F524D0E1029DB6CF256A1D2DD0899D06DCA854226C60D76FA27D09A432DCDEDE4AA6BB65D1A5FD5F06177100E484A5CA787EED2DD37E59920F87370433DE04EB5EF8B188AF5792D845C13F773028906E83DC0B378EB78B08B7E7004DE3B26C854985DA73B4FD76223938DA9E13FD5245DC73F1F91A5FDA76B1855DB9E13332FA9E8B65BEBE43EE008B0FBEE742C9E3F87B2EC48A08C0E7140E87DE2B516FC318B8D7DFA290757BADC51DC9BC13254485C1A3FB6DE034236A5B78CECC59808F47B7B7B6A4D10E6FE08FC50E7D064646A9F3237F664D2B23DF75F82E4344BCEB286E64B83B3994C9DC1511EF5C2CD04B97CB566FD6BC3C6ADCFE6A0453BFCF085FAD7A3AC13859EF948BA3293FEE318EA99F9C10047FDB5FADE14C633873F3D781E526E80492C664DBDBF977246B4490B78E268D53770113E1CD59471FBA5D012263BBD91D2B686A763A5AD09B8088E3AAEDAD743401DA5C2836B7165A13A8CDC9B7D53A5A9B0B301CB2CDF1099329987675D436175064D4B6291B3C7C1CB4BD956877F257065773F1CDC3D9F98822D85AFB65C9C5AEA509B0D61EA30EAE364103908F52B6B792E0D05BB717CE82FEAE3BF6C66DA2F862077EFBE1F9CDC989ED1E0FC64A8380ED2DEF36D1C49CACD3443C31B79CD16A376F3EB3F2385D7B3BB3EEECC12AF697130619EEE64E8763ECA671B1F89AF2B0467A7E9050B573A30841BA7954882ED9B5A5A9D9C7376F69342DF3391E6A565BCEE32399392264173926E20BEF6F227FF6290EAB4275BBF358584765C2D52ECC823CE21AA2743A7FC60552FB185DC010667076E69591B2CE41EA019F1FAC3CC8988C76DD36923C4EA35BF0670EB83AE694052044E65C9A2520E0E3192E9320F2822D08C9DE32850C579ABC2F188ECDB9805B18E54B08D3331352F5FD309E1C46658654D7752A7E9B018F686EF24E8359B846B2EDA033F79A7DD41332553EB2089EC9CC2B7319989D59367B307E139B3AEAE6E152BD71A0EAEA747FFC681456B5939D37329F8A226D12FC209A7DC95CFF501C69C309A3B2A13A16EA906BAD32F6C17456DB4E5A790F57DC167A75F435D766951D9397649AAAFFD57228EEB15D1147D6437BB5EA8DC33D03AF6C7BB596D5B151BE0A02CD121BFC3AA230B5C3C78983F18F56F339E2187104E5FE58C6880E1900677C5E31B47D2C39879DBDE9193243B3460B6366744661AED835D7B9A46CD294202795481D44C5B05703856DA9F37AE12EC948F5C35ECA9B903292E4BDBE5198AB3E59FA557E06BB99517C0C959CCA267110AE22DB4936834AEF859B14EF223B6726F51BE73C39D5B3D63DF0D11BFA99137C7E8479928463A4EA359AE62A4EF562C7ACF978534D2791573E6C723AF76F72C62BBF0011D9DC1A47136956478E46932522D1E46A28949613875E268B90CB1C5DBBEB2F3E7CB3EB1C61ABEB4C8346D39F06841DA08BC83A439732A0CCDA1642DA6C211975B69C863EDE1D71449BB793049470A676DEAA8065A289ABB3C43357E76A285461B578FC3A43845EE769B0D908413C11AE84881A57C8846C699A88099679525265B62991DAE69093AA4B2809D68574648BEBF1026265BA904499A501A62EDBF2F874B6880C5D4247ADB89D272053A60BF1CB2C1D30B970F3F064AE9008594043AA3155383A4D96884893ABA1501CE9E7D1CB64117299A343CD8F470B508B64216A91A341AD8EC1F2B8758608B9CED32A59F2B4A248D552F962854B15D111A40ED10908D2F942827411EB654CBEB028CA2A969A166B1BE5FD1336C39430478A7EFB4E749666461421288ACFDA089C51B833620B897684D0D651514966FA30CFF699768B376C24FDD31D4BE8D451999D866B2B6DAF765D579F58900C83D51BA11A4F14D345B51068D01871D0BC87DAEB00561F15EC0650FCD2A5E85B04D141497726385422EFA74AD0D40EBCCEA2D68913DB0E819980D989947DD765B3EF78BECD846118F6EFBFCBF407214167155F8C249E7F72C593B828ECB9A16BD7F4126CFCB9C361B7879666B9A75E3020866E7D99639FE88B740BAC76C78B10247B5AFBA110FA9505A3A0F73F4B3CD044EB65BB33B9DF98A8ACDA3FCABBCDBDF48CF34E16A5655D25A09FDC8BCE278B4FBB28BF9754FEBA8069B06E204E1066043DCAE58ACBE4DDACBDBF4C8BEA22DCCDE10CF82003674916DC022F43D9B9C1586C718ABB357950801BE85F461F77D97697A12EC3CD4D480957EE4156D13F59706D3EF958C4864B5D74A17EBFF863F47A17843E6EF75BC135000944EE9AAEAE37E57399E5D79CD60F18E9431C190255C3873DEA9FE1661B22B0F463B402DF609BB621F67D0FD7C07B58560F73CB41F413410FFBC94500D609D8A41546531FFD443CEC6FEEFFFE6FB577B0A539660100, N'6.2.0-61023')
GO


-- ----------------------------
-- Table structure for Broadcast
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Broadcast]') AND type IN ('U'))
	DROP TABLE [dbo].[Broadcast]
GO

CREATE TABLE [dbo].[Broadcast] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [ValidateCode] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [UpdateTime] datetime DEFAULT ('1900-01-01T00:00:00.000') NOT NULL,
  [SubscribeType] int DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Broadcast] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Category
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Category]') AND type IN ('U'))
	DROP TABLE [dbo].[Category]
GO

CREATE TABLE [dbo].[Category] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [Description] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[Category] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Category
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Category] ON
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'1', N'默认分类', N'1', N'默认的分类')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'2', N'操作系统', N'1', N'Windows硬盘系统和RamOS系统')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'3', N'资源分享', N'1', N'一些重金难求的资源，你们懂的')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'4', N'影视精品', N'1', N'博主珍藏的精品电影和电视剧')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'5', N'技术教程', N'1', N'各种搞机技术')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'6', N'程序开发', N'1', N'开发者学习教程')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'7', N'开发工具', N'1', N'开发者常用工具')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'8', N'科学上网', N'1', N'老湿机日常飙车必备工具')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'9', N'教学资源', N'1', N'编程爱好者的学习资源')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'11', N'网络运维', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'12', N'数据库开发', N'1', N'DBA运维工具和教程')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'13', N'共享文献', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'14', N'其他', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'15', N'绿色软件', N'1', N'没有捆绑，没有烦人的广告，没有臃肿的身材')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'16', N'专题研究', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'17', N'硬件知识', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'18', N'玩机分享', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'19', N'服务器教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'20', N'生活随笔', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'21', N'福利资源', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'22', N'JavaEE视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'23', N'.NET视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'24', N'php视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'25', N'Web前端视频教程', N'1', N'Web前端开发者的学习资源')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'26', N'Windows硬盘系统', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'27', N'RamOS系统', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'28', N'视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'29', N'精品系统', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'30', N'科技前沿', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'31', N'网络安全', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'32', N'前端杂谈', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'33', N'奇淫技巧', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'34', N'后端技术', N'1', N'后端开发者充电')
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'35', N'生产力工具', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'36', N'平面设计视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'37', N'Python视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'38', N'.NET开发技术', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'39', N'Android开发视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'40', N'C++视频教程', N'1', NULL)
GO

INSERT INTO [dbo].[Category] ([Id], [Name], [Status], [Description]) VALUES (N'41', N'开源项目', N'1', N'博主自主研发的开源项目')
GO

SET IDENTITY_INSERT [dbo].[Category] OFF
GO


-- ----------------------------
-- Table structure for Comment
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Comment]') AND type IN ('U'))
	DROP TABLE [dbo].[Comment]
GO

CREATE TABLE [dbo].[Comment] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [NickName] nvarchar(24) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [QQorWechat] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [ParentId] int DEFAULT ((0)) NOT NULL,
  [PostId] int  NOT NULL,
  [CommentDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [Browser] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [OperatingSystem] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [IsMaster] bit DEFAULT ((0)) NOT NULL,
  [VoteCount] int DEFAULT ((0)) NOT NULL,
  [AgainstCount] int DEFAULT ((0)) NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [IP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[Comment] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Contacts
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Contacts]') AND type IN ('U'))
	DROP TABLE [dbo].[Contacts]
GO

CREATE TABLE [dbo].[Contacts] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Url] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Contacts] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Contacts
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Contacts] ON
GO

INSERT INTO [dbo].[Contacts] ([Id], [Title], [Url], [Status]) VALUES (N'1', N'腾讯QQ', N'http://wpa.qq.com/msgrd?v=3&uin=1170397736&site=qq&menu=yes', N'1')
GO

INSERT INTO [dbo].[Contacts] ([Id], [Title], [Url], [Status]) VALUES (N'5', N'GitHub', N'https://github.com/ldqk', N'1')
GO

INSERT INTO [dbo].[Contacts] ([Id], [Title], [Url], [Status]) VALUES (N'7', N'企业邮箱', N'http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=admin@masuit.com', N'1')
GO

SET IDENTITY_INSERT [dbo].[Contacts] OFF
GO


-- ----------------------------
-- Table structure for Donate
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Donate]') AND type IN ('U'))
	DROP TABLE [dbo].[Donate]
GO

CREATE TABLE [dbo].[Donate] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [NickName] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [QQorWechat] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [EmailDisplay] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [QQorWechatDisplay] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Amount] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [DonateTime] datetime  NOT NULL,
  [Status] int  NOT NULL,
  [Via] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[Donate] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for InternalMessage
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[InternalMessage]') AND type IN ('U'))
	DROP TABLE [dbo].[InternalMessage]
GO

CREATE TABLE [dbo].[InternalMessage] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Link] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Time] datetime  NOT NULL,
  [Read] bit  NOT NULL,
  [Status] int  NOT NULL
)
GO

ALTER TABLE [dbo].[InternalMessage] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Interview
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Interview]') AND type IN ('U'))
	DROP TABLE [dbo].[Interview]
GO

CREATE TABLE [dbo].[Interview] (
  [Id] bigint  IDENTITY(1,1) NOT NULL,
  [IP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [UserAgent] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [OperatingSystem] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [BrowserType] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [ViewTime] datetime DEFAULT (getdate()) NOT NULL,
  [FromUrl] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Province] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [ISP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [HttpMethod] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Address] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [ReferenceAddress] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [LandPage] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [OnlineSpan] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Uid] uniqueidentifier DEFAULT ('00000000-0000-0000-0000-000000000000') NOT NULL,
  [OnlineSpanSeconds] float(53) DEFAULT ((0)) NOT NULL,
  [Country] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[Interview] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for InterviewDetail
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[InterviewDetail]') AND type IN ('U'))
	DROP TABLE [dbo].[InterviewDetail]
GO

CREATE TABLE [dbo].[InterviewDetail] (
  [Id] bigint  IDENTITY(1,1) NOT NULL,
  [Url] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Time] datetime  NOT NULL,
  [InterviewId] bigint  NOT NULL
)
GO

ALTER TABLE [dbo].[InterviewDetail] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Issue
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Issue]') AND type IN ('U'))
	DROP TABLE [dbo].[Issue]
GO

CREATE TABLE [dbo].[Issue] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Name] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Link] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Description] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Level] int  NOT NULL,
  [SubmitTime] datetime  NOT NULL,
  [HandleTime] datetime  NULL,
  [Msg] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [IPAddress] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Status] int  NOT NULL
)
GO

ALTER TABLE [dbo].[Issue] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for LeaveMessage
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[LeaveMessage]') AND type IN ('U'))
	DROP TABLE [dbo].[LeaveMessage]
GO

CREATE TABLE [dbo].[LeaveMessage] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [NickName] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [PostDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [QQorWechat] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [ParentId] int DEFAULT ((0)) NOT NULL,
  [Browser] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [OperatingSystem] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [IsMaster] bit DEFAULT ((0)) NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [IP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[LeaveMessage] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Links
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Links]') AND type IN ('U'))
	DROP TABLE [dbo].[Links]
GO

CREATE TABLE [dbo].[Links] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Name] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Url] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [Except] bit DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Links] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Links
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Links] ON
GO

INSERT INTO [dbo].[Links] ([Id], [Name], [Url], [Status], [Except]) VALUES (N'2', N'github', N'https://github.com/ldqk', N'1', N'1')
GO

INSERT INTO [dbo].[Links] ([Id], [Name], [Url], [Status], [Except]) VALUES (N'4', N'QQ空间', N'http://user.qzone.qq.com/1170397736/infocenter', N'1', N'1')
GO

INSERT INTO [dbo].[Links] ([Id], [Name], [Url], [Status], [Except]) VALUES (N'8', N'我的简历', N'http://resume.masuit.com', N'1', N'1')
GO

SET IDENTITY_INSERT [dbo].[Links] OFF
GO


-- ----------------------------
-- Table structure for LoginRecord
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[LoginRecord]') AND type IN ('U'))
	DROP TABLE [dbo].[LoginRecord]
GO

CREATE TABLE [dbo].[LoginRecord] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [IP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [LoginTime] datetime  NOT NULL,
  [PhysicAddress] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [LoginType] int  NOT NULL,
  [UserInfoId] int  NOT NULL,
  [Status] int  NOT NULL,
  [Province] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[LoginRecord] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Menu
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Menu]') AND type IN ('U'))
	DROP TABLE [dbo].[Menu]
GO

CREATE TABLE [dbo].[Menu] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Name] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Icon] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Url] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Sort] int  NOT NULL,
  [ParentId] int DEFAULT ((0)) NOT NULL,
  [MenuType] int  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [NewTab] bit DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Menu] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Menu
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Menu] ON
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'1', N'首页', NULL, N'/', N'10', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'2', N'分类', NULL, N'#', N'20', N'0', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'3', N'专题', NULL, N'#', N'30', N'0', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'4', N'黑科技', NULL, N'#', N'40', N'0', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'5', N'投稿', NULL, N'/post/publish', N'62', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'6', N'留言板', NULL, N'/msg', N'50', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'7', N'技术杂谈', NULL, N'#', N'210', N'2', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'9', N'资源分享', NULL, N'#', N'220', N'2', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'10', N'程序人生', NULL, N'#', N'230', N'2', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'11', N'杂七杂八', NULL, N'#', N'240', N'2', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'12', N'Windows系统', NULL, N'#', N'2110', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'13', N'玩机分享', NULL, N'/cat/18', N'2120', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'14', N'科技前沿', NULL, N'/cat/30', N'2130', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'16', N'硬件知识', NULL, N'/cat/17', N'2140', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'17', N'网络安全', NULL, N'/cat/31', N'2150', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'18', N'软件教程', NULL, N'/cat/5', N'2160', N'7', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'19', N'科学上网', NULL, N'/cat/8', N'2210', N'9', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'20', N'视频教程', NULL, N'#', N'2220', N'9', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'21', N'精品系统', NULL, N'/cat/2', N'2230', N'9', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'22', N'好福利', NULL, N'/cat/21', N'2240', N'9', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'23', N'前端杂谈', NULL, N'/cat/32', N'2310', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'24', N'奇淫技巧', NULL, N'/cat/33', N'2320', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'25', N'网络运维', NULL, N'/cat/11', N'2330', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'27', N'数据库开发', NULL, N'/cat/12', N'2340', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'28', N'后端技术', NULL, N'/cat/34', N'2350', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'29', N'开发工具', NULL, N'/cat/7', N'2360', N'10', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'30', N'生产力工具', NULL, N'/cat/35', N'2410', N'11', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'31', N'生活随笔', NULL, N'/cat/20', N'2420', N'11', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'32', N'网站相关', NULL, N'#', N'2430', N'11', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'33', N'关于', NULL, N'/about', N'90', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'34', N'JavaEE视频教程', NULL, N'/cat/22', N'22210', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'35', N'.NET视频教程', NULL, N'/cat/23', N'22220', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'36', N'web前端视频教程', NULL, N'/cat/25', N'22230', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'37', N'php视频教程', NULL, N'/cat/24', N'22240', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'38', N'Python视频教程', NULL, N'/cat/37', N'22250', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'39', N'平面设计视频教程', NULL, N'/cat/36', N'22260', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'40', N'Windows硬盘系统', NULL, N'/cat/26', N'21110', N'12', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'41', N'RamOS系统', NULL, N'/cat/27', N'21111', N'12', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'42', N'网站公告', NULL, N'/notice', N'24310', N'32', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'43', N'免责声明', NULL, N'/disclaimer', N'24320', N'32', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'44', N'友情链接', NULL, N'/links', N'24330', N'32', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'46', N'科学上网', N'http://photocdn.sohu.com/20110914/Img319282996.jpg', N'/c/1', N'351', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'47', N'微软系统', N'https://wx1.sinaimg.cn/mw690/0060lm7Tly1fsqniwk22gj30k00ciwei.jpg', N'/c/3', N'330', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'48', N'开源项目', N'https://wx1.sinaimg.cn/mw690/0060lm7Tly1fsqnifvsf7j30cz08ut8n.jpg', N'/c/2', N'310', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'49', N'生产力工具', N'https://wx1.sinaimg.cn/mw690/0060lm7Tly1fsqnjaf6doj30d207p3yo.jpg', N'/c/4', N'340', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'50', N'根据经纬度查询地理位置', NULL, N'/tools/pos', N'410', N'4', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'51', N'查询IP地址详细地理信息', NULL, N'/tools/ip', N'420', N'4', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'53', N'RSS', NULL, N'/rss', N'3000', N'0', N'0', N'1', N'1')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'54', N'文章', NULL, N'/p', N'15', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'55', N'绿色软件', NULL, N'/cat/15', N'0', N'9', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'56', N'Android移动开发视频教程', NULL, N'/cat/39', N'0', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'57', N'C++视频教程', NULL, N'/cat/40', N'0', N'20', N'1', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'58', N'捐赠', NULL, N'/donate', N'80', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'59', N'详细地理位置转经纬度', NULL, N'/tools/addr', N'430', N'4', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'60', N'资源福利', N'https://wx1.sinaimg.cn/large/0060lm7Tly1fsqnjog5fyj30dw08s3yw.jpg', N'/c/5', N'350', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'62', N'虚位以待', NULL, N'#', N'4500', N'4', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'63', N'Cron表达式生成器', NULL, N'/tools/cron', N'449', N'4', N'3', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'64', N'发现漏洞', NULL, N'/bug', N'70', N'0', N'0', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'66', N'稀缺资源', N'https://wx4.sinaimg.cn/mw690/0060lm7Tly1fsqnkkx8muj30if0at74s.jpg', N'/c/6', N'360', N'3', N'2', N'1', N'0')
GO

INSERT INTO [dbo].[Menu] ([Id], [Name], [Icon], [Url], [Sort], [ParentId], [MenuType], [Status], [NewTab]) VALUES (N'67', N'项目简介', NULL, N'/misc/3', N'100', N'0', N'0', N'1', N'1')
GO

SET IDENTITY_INSERT [dbo].[Menu] OFF
GO


-- ----------------------------
-- Table structure for Misc
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Misc]') AND type IN ('U'))
	DROP TABLE [dbo].[Misc]
GO

CREATE TABLE [dbo].[Misc] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [PostDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [ModifyDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Misc] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Notice
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Notice]') AND type IN ('U'))
	DROP TABLE [dbo].[Notice]
GO

CREATE TABLE [dbo].[Notice] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [PostDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [ModifyDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [ViewCount] int DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[Notice] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for Post
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Post]') AND type IN ('U'))
	DROP TABLE [dbo].[Post]
GO

CREATE TABLE [dbo].[Post] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Author] nvarchar(24) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [PostDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [ModifyDate] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [IsFixedTop] bit DEFAULT ((0)) NOT NULL,
  [CategoryId] int  NOT NULL,
  [ResourceName] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [IsWordDocument] bit DEFAULT ((0)) NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Label] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
  [VoteUpCount] int DEFAULT ((0)) NOT NULL,
  [VoteDownCount] int DEFAULT ((0)) NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [IsBanner] bit DEFAULT ((0)) NOT NULL,
  [Description] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [ImageUrl] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [ProtectContent] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Keyword] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[Post] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Post
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Post] ON
GO

INSERT INTO [dbo].[Post] ([Id], [Title], [Author], [Content], [PostDate], [ModifyDate], [IsFixedTop], [CategoryId], [ResourceName], [IsWordDocument], [Email], [Label], [VoteUpCount], [VoteDownCount], [Status], [IsBanner], [Description], [ImageUrl], [ProtectContent], [Keyword]) VALUES (N'20', N'VisualStudio神级插件——Resharper 2018.1 Ultimate破解版+教程', N'🌚😂懒得勤快🌞🎃', N'<p>ReSharper是一个JetBrains公司出品的著名的代码生成工具，是Visual Studio里面的一个插件。它包括一系列丰富的能大大增加C#和Visual Basic .NET开发者生产力的特征。使用ReSharper，你可以进行深度代码分析，智能代码协助，实时错误代码高亮显示，解决方案范围内代码分析，快速代码更正，一步完成代码格式化和清理，业界领先的自动代码重构，高级的集成单元测试方案，和强大的解决方案内导航和搜索。实质上，ReSharper特征可用于C#，VB.NET，XML，ASP.NET，XAML，和构建脚本。ReSharper还为C#和VB.NET提供了增强的交叉语言功能，它使开发者可以有效的控制.net混合项目。</p><p><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq60gd7fuj20hd0gojsv.jpg"/></p><p>ReSharper是一款由jetbrains开发的针对C#, VB.NET, ASP.NET, XML,和XAML的编辑器。沿袭了jetbrains开发工具一贯的优良传统，ReSharper拥有高度智能的纠错，30多种高级代码重构功能，方便的单元测试工具，快速导航、检索，以及一键格式化代码，自动代码生成和模板功能等很多特性。</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq60h92ihj21hg0t0dot.jpg"/></p><h3>ReSharper更新日志：</h3><p>全英文的更新日志，自己去看吧，懒得写出来了：<a href="https://www.jetbrains.com/resharper/whatsnew/">https://www.jetbrains.com/resharper/whatsnew/</a></p><h3>MSDN&nbsp;VisualStudio Tools视频介绍：</h3><video src="http://video.ch9.ms/ch9/60ff/a2487b33-4195-4e57-a1a8-9f98001760ff/VSToolbox17_high_ch9.mp4" controls="controls" autoplay="autoplay">您的浏览器不支持 video 标签。</video><h3>ReSharper 2017破解详细方法：</h3><p>1-2、下载并运行激活服务器：<a href="http://masuit.com/1191" target="_blank" textvalue="http://masuit.com/1191">http://masuit.com/1191</a></p><p>3、VS里面，打开ReSharper的注册窗口：ReSharper ——&gt; Help ——&gt; License Information...</p><p><img src="http://ww4.sinaimg.cn/large/87c01ec7gy1fsq60huhiyj20oa0dwabh.jpg"/></p><p>4、Use License Server，右侧加号，点击打开。</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq60ipanlj20oa0dwn4r.jpg"/></p><p>5、输入上面启动的服务器地址：http://127.0.0.1:<span style="color: rgb(255, 0, 0);">1337</span>，然后点击Add，然后Close</p><p><img src="http://ww4.sinaimg.cn/large/87c01ec7gy1fsq60j69tjj20jg0b475a.jpg"/></p><p>6、选择刚刚添加的本地服务器，立刻就变激活成功了！</p><p><img src="http://masuit.com/upload/images/20180406/6365863444778242013176472.png"/></p><p>7、激活后是这样滴，可以去正常使用了。</p><h3>总结：</h3><p>1）本地部署验证服务器，长期有效；<br/>2）在自己的服务器部署验证，容易被和谐；</p><p>大家自己添加，然后选择就可以破解ReSharper了，但是不保证长期有效！！！！</p><p>如果你是一名.NET开发人员，但是你却不使用ReSharper，那么你就不是一个合格的码农了，因为这是一个强大的神器，你值得拥有！当然，用它的代价是，启动VS会变得非常慢，非常卡，但是需要知道，磨刀不误砍柴工！开发效率绝对提升N倍！！！</p><h3>下载地址：</h3><p>主程序官网下载链接：<a href="https://download.jetbrains.com/resharper/JetBrains.ReSharperUltimate.2018.1.exe" target="_blank" textvalue="https://download.jetbrains.com/resharper/JetBrains.ReSharperUltimate.2018.1.exe">https://download.jetbrains.com/resharper/JetBrains.ReSharperUltimate.2018.1.exe</a></p><p>主程序和破解补丁：<a href="http://masuit.com/1191" target="_blank" textvalue="http://masuit.com/1191" style="white-space: normal;">http://masuit.com/1191</a></p>', N'2017-09-11 21:34:47.0000000', N'2018-06-27 23:42:42.6386633', N'0', N'7', N'a578af33-822a-4a87-b101-e73c413970e2.docx', N'1', N'admin@masuit.com', N'VisualStudio,Resharper,生产力工具', N'4', N'0', N'5', N'0', N'如果你是一名.NET开发人员，但是你却不使用ReSharper，那么你就不是一个合格的码农了，因为这是一个强大的神器，你值得拥有！当然，用它的代价是，启动VS会变得非常慢，非常卡，但是需要知道，磨刀不误砍柴工！开发效率绝对提升N倍！！！', N'/upload/a578af33-822a-4a87-b101-e73c413970e2/index.001.png', NULL, NULL)
GO

INSERT INTO [dbo].[Post] ([Id], [Title], [Author], [Content], [PostDate], [ModifyDate], [IsFixedTop], [CategoryId], [ResourceName], [IsWordDocument], [Email], [Label], [VoteUpCount], [VoteDownCount], [Status], [IsBanner], [Description], [ImageUrl], [ProtectContent], [Keyword]) VALUES (N'21', N'VisualStudio神级插件Resharper的基本配置和使用技巧大全+Resharper性能优化', N'🌚😂懒得勤快🌞🎃', N'<p>所谓工欲善其事，必先利其器。尽管visual studio本身已经非常强大，但优秀的插件仍然可以帮开发者大大提高效率。</p><p>ReSharper是一款由jetbrain开发的针对C#,VB.NET,ASP.NET,XML,和XAML的编辑器。沿袭了jetbrains开发工具一贯的优良传统，ReSharper拥有高度智能的纠错，30多种高级代码重构功能，方便的单元测试工具，快速导航、检索，以及一键格式化代码，自动代码生成和模板功能等很多特性。</p><p>ReSharper和之前版本相比较，重点包括以下几点更新：JavaScript，CSS，支持和Razor视图引擎捆绑反编译器，增强导航，重新设计的设置管理，不同语言的新的代码检查功能。</p><p>以下是对Resharper的一些基本配置和使用技巧，在这里，小编和大家一起分享：</p><h3>1:安装后，Resharper会用他自己的英文智能提示</h3><p>替换掉 vs2010的智能提示，所以我们要换回到vs2010的智能提示</p><p><img src="http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0ga81v4j20h908ydhj.jpg"/></p><h3>2:快捷键。</h3><p>是使用vs2010的快捷键还是使用 Resharper的快捷键呢？我是使用re的快捷键</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq0garq7zj20iy0betbc.jpg"/></p><h3>3:resharper安装后，会做几件事情</h3><p>这几件事情对于除此使用者，比较麻烦，因此归纳总结一下，以资参考。</p><p>(1)、会将选项——文本编辑器——C#——常规——自动列出成员 这个选择框的勾选去掉。这样当你使用某个方法的时候，便不会提示参数，是一个很郁闷的事情。</p><p>可以手动勾上。</p><p>(2)、会将选项——文本编辑器——C#——高级——显示实时语义错误、在编辑中用下划线标识错误这两个选项去掉。这个本来没有什么，但是如果卸载了Resharper，</p><p>vs编辑器变不会实时提示错误。因此卸载Resharper后，需要把这两个选项重新勾选上。</p><h3>4: use var</h3><p>use implicitly typed local variable declaration</p><p><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq0gc5jv2j20yh0mtqdo.jpg"/></p><h3>5:按 alt+enter 能解决很多问题。</h3><p>下面是快捷键大全。</p><p><img src="http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0gcv7oaj210f0lktfj.jpg"/></p><h3>6: Alt+F7</h3><p>将你光标所在位置的变量的所有使用以列表的方式显示出来，显示结果的窗体可以像其他窗体那样停靠。</p><p>它的优点包括：</p><pre class="brush:as3;toolbar:false">可以从所有使用中挑选只显示read&nbsp;usage或者write&nbsp;usage，有时我们只是想知道某个变量在哪里被改变了。找到的位置前的图标也告诉你这点。
可以在下方预览，即使我们列出所有使用，也不想跳转到每个使用它的地方，这时预览可以帮你大忙。
当你在代码编辑器中改动了某些使用时，比如删除了某行，那么在查找结果的窗体中，会用删除线表示出来。
默认的是寻找解决方案中所有的使用，并且按照命名空间来组织，非常便于选择。</pre><p>我现在已经记不起来在没有Alt+F7之前我是怎么查找的。反正现在我几乎不怎么样Ctrl+F了，除非我忘记了某个变量的名字。如果是这样，多半这个名字需要refactor，那也是Resharper的另一大块功能所在。也许有人对这个功能嗤之以鼻，但是用过CAB的人都知道，订阅和发布某个事件的签名，完全是字符串，如果你不用搜索来找到它的话，你都不知道这个控件的鼠标点下去，到底有多少个处理程序在背后开始工作了。用了Alt+F7来搜索这个字符串，等于在查找背后所有的调用者。</p><p>不过提示你，当光标停留在一个类型上时，要慎用Alt+F7，假设是一个string，你应该能想象到得找到多少个使用</p><h3>7:威力无比的Alt+Enter回车</h3><p>万能的Alt+Enter能够帮你完成很多编写代码过程中的dirtywork，总结起来大概是这么些：</p><ol type="1" class=" list-paddingleft-2"><li><p>帮你实现某个接口或抽象基类的方法；</p></li><li><p>提供你处理当前警告的一些建议；</p></li><li><p>为你提供处理当前错误的一些建议（不一定是真的错误）；</p></li><li><p>为你简化当前的臃肿代码；</p></li></ol><h3>8: Ctrl + F11</h3><p>当我们看别人的代码，或者是看自己的代码的时候，总是觉得代码太多，于是我们就用 region来把代码进行了封装注释，可是这样之后别人看代码就很郁闷，Resharper的 File Structure功能，就可以把region和你的方法都展示出来。</p><p>说了这么多，其实就是把对象浏览器和region的长处结合起来，既可以清晰的分类，又能一目了然的找到需要的方法。Resharper这时帮上你的大忙了。用Ctrl+F11，就弹出一个像右边这样的窗口来。</p><p>这里面，按照你的region来显示，这样读你的代码的人也受益了。每个方法的参数，返回值都如UML一样列出来。</p><pre class="brush:as3;toolbar:false">如果需要浏览到某个方法，直接双击它的名字；
如果要把某几个方法装进一个新的region，则可以选中方法，点工具栏上的像框的那个图标；点叉则会删除这个region并把相应的方法移到外面来。
如果要调整某个方法的位置，比如把它移到别的region里面去，只需要在这里拖动这个方法即可。
更可喜的是，你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了，在某个方法上右键你就能开始操作。</pre><p><img src="http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0gdfu86j20o50fqdhb.jpg"/>9:重构才是王道（上）</p><p>重构是一种精神，证明你在致力于提供高效的、精炼的、健壮的代码，而不是凌乱的、晦涩的、漏洞百出的代码。</p><p>在Visual Studio 2005中，微软第一次提供了重构工具。但是不够，远远不够。我们需要的重构是非常广义的，我们想要对代码进行快速的调整，快到我在想什么我的工具就能做什么。这才是追求重构的境界。所以在这个意义上，几乎Resharper为你提供了巨大的生产力。<br/>Visual Studio 2005提供的重构包括了如下：</p><pre class="brush:bash;toolbar:false">封装字段
提取方法
提取接口
提升局部变量
移除参数
重命名
重新排列参数</pre><p>这些方法在Resharper中全部都支持（但Resharper的重构远不止这些），它们对应的变成了：</p><pre class="brush:as3;toolbar:false">封装字段&nbsp;——&nbsp;Introduce&nbsp;Field
提取方法&nbsp;——&nbsp;Extract&nbsp;Method
提取接口&nbsp;——&nbsp;Extract&nbsp;Interface（另增加了Extract&nbsp;Superclass提取为基类）
提升局部变量&nbsp;——&nbsp;Introduce&nbsp;Variable
移除参数&nbsp;——&nbsp;移到Change&nbsp;Signature（改变方法签名）中
重命名&nbsp;——&nbsp;Rename（Resharper会根据对象的类型名称，提供你几个可选的最合适的名称）
重新排列参数&nbsp;——&nbsp;移到Change&nbsp;Signature（改变方法签名）中</pre><p>我知道很多人都声称自己E文不好，但是，这确实都是很简单的单词，难不倒任何人的。这些重构的功能是人所共知的，下面就告诉大家一些Resharper特有的，首先，重构的快捷键是Ctrl+Shift+R：<br/>1、对于类，除了提取接口、基类，你还可以移动它到其他的命名空间和移动到别的文件里，这是一个实用的功能，也许你不信，但是我这真的有个人，把所有的business entity都写在一个DataObject.cs里面。你难以想象，我打开它时嘴张了多大。<br/>2、对于字段，提供了：</p><p style="margin-left: 42pt; padding-top: 2pt; padding-right: 4pt; font-size: 10.5pt">Safe Delete<span style="color: #3382ad">，会检测所有使用到的地方，并询问如何删除；</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt">Pull Member Up<span style="color: #3382ad">和</span>Push Member Down<span style="color: #3382ad">，可以把这个字段在基类和继承类中移动；</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt">Use base type where possible<span style="color: #3382ad">，尽可能的使用基类，由于</span>ArcGIS<span style="color: #3382ad">平台是基于</span>com<span style="color: #3382ad">组件的，很多时候我们需要的是</span>IGeometry, IPointCollection<span style="color: #3382ad">这样的接口所公开的属性或者方法，于是你没有必要保存一个</span>polygon<span style="color: #3382ad">对象，而可以使用基类型；</span></p><p style="margin-left: 42pt; padding-right: 4pt; padding-bottom: 2pt; font-size: 10.5pt">Encapsulate Field<span style="color: #3382ad">，封装字段，但是这个功能远没有另一个提供同样功能的操作有用。我可以在后文中来讲。</span></p><p>3、对于方法，提供了：</p><p style="margin-left: 42pt; padding-top: 2pt; padding-right: 4pt; font-size: 10.5pt"><span style="color: #3382ad">与字段类似的功能，此外；</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt">Change Signature<span style="color: #3382ad">，更改函数签名，包括更改名称，返回值类型，参数的各种信息，添加和删除参数，相当实用。如果你是在重写方法上操作，会提示你是否到基类中更改。</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt">Make Static<span style="color: #3382ad">，如果</span>Resharper<span style="color: #3382ad">检测到这个方法并没有与非静态成员相关联的话，往往会自动地提示你（以黄色横杠的形式出现）可以改为</span>static<span style="color: #3382ad">，如果你自作主张的对一些方法进行修改也无不妥，但后果自负。</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt">Extract class from parameter<span style="color: #3382ad">，如果你的参数有七个八个，那是否考虑用一个类来封装这些参数呢，于是这个功能应运而生。</span></p><p style="margin-left: 42pt; padding-right: 4pt; padding-bottom: 2pt; font-size: 10.5pt">Method to Property<span style="color: #3382ad">，顾名思义，如果还在使用</span>GetField()<span style="color: #3382ad">或者</span>SetField(..)<span style="color: #3382ad">的话，你一定是从非</span>.net<span style="color: #3382ad">星来的。</span></p><p>4、在方法体内部：</p><p>Extract Method，不用介绍了吧。<br/>Introduce Variable/Parameter/Field，取决于你光标所在的对象，可以提供转化的功能。<br/>Inline Variable：就是把：</p><p style="border: 0.75pt dashed #3382ad; padding: 2pt 4pt; font-size: 10.5pt">IPoint point = new PointClass();<br/>point.PutCoords(_point.X, _point.Y);</p><p>变成这样子：</p><p style="border: 0.75pt dashed #3382ad; padding: 2pt 4pt; font-size: 10.5pt">new PointClass().PutCoords(_point.X, _point.Y); //<span style="color: #3382ad">这是个糟糕的例子</span></p><p>５、重命名：</p><p>为什么重命名值得挑出来讲，因为Resharper提供了命名建议这一金子般的功能。于是，想改名为易读性强的名字，不是那么费脑子的事情了。Resharper会根据这个变量的类型，为你提供几个备选名字，名字列表是列在光标位置上的（对方法重命名会弹出对话框），你只需要用方向键选择并敲回车即可，这种名字多是将类型的名字首字母改为小写得来的，甚至刨根到基类的类型名，你还可以在此基础上加以改进。如果你还在用i,j这种晦涩的名称，请迅速的把他们改为outIndex, pointCount之类可读的名称。</p><p>Resharper其实提供了更先进的功能，在你命名一个变量时，就有快捷键为你提供备选名字，但是Ctrl+Space是我们宝贵的输入法切换键，于是，我对变量名的敲定，往往是先起了一个较烂的，然后重命名的。<br/>还有一些更广义上的，帮助你对代码进行调整的功能，我另写一篇吧，不然太长了。</p><h3>10:重构才是王道</h3><h4>插入代码</h4><p>Resharper的Alt+Insert快捷键提供给你插入代码的功能。由于这两个键非常难按（这是我的感受），真正在使用的时候，我用的是Alt-R-C-G，意指打开Resharper菜单——Code——Generate，都只需要你的左手，这样你可以右手一边比划，一边还在写代码，多酷啊。</p><p style="margin-left: 42pt; padding-top: 2pt; padding-right: 4pt; font-size: 10.5pt"><span style="color: #3382ad">生成的代码中最常用的是构造函数和属性，当你没有私有字段的时候，只会生成一个空的默认构造函数，而且没有生成属性的功能。在你有私有字段的情况下，生成之前会让你选择哪些私有字段需要作为构造函数的参数，并生成初始化的代码，这样编写重载极其方便。生成属性也类似。</span></p><p style="margin-left: 42pt; padding-right: 4pt; font-size: 10.5pt"><span style="color: #3382ad">再次常用的就是重写基类或者接口的方法了。选择</span>Implement Interface Member<span style="color: #3382ad">或者</span>Override Inheritate Member<span style="color: #3382ad">，</span>Resharper<span style="color: #3382ad">会查找当前类的基类或接口，然后按继承层次列出来，根据你的选择重写或实现这些方法。</span></p><p style="margin-left: 42pt; padding-right: 4pt; padding-bottom: 2pt; font-size: 10.5pt"><span style="color: #3382ad">不是太常用的是生成</span>Equals<span style="color: #3382ad">和</span>GetHashCode<span style="color: #3382ad">方法，在我的应用场景中很少重写它们。但是根据《</span>.NET<span style="color: #3382ad">设计规范》，不管是值类型还是引用类型的</span>Equals<span style="color: #3382ad">都建议重写，并且应该重写</span>GetHaseCode<span style="color: #3382ad">方法，因为它们相互依赖。如果你有这个需求，那么生成这三个函数一定能够帮你的大忙。</span></p><h4>包围代码</h4><p>Visual Studio也提供了外侧代码这个功能，你可以按Ctrl+K,Ctrl+S来激活这个功能，虽然我并没有任何鄙视Visual Studio的意思，但是Resharper的快捷键确实更加合理（我在按下Ctrl的时候真的很难按下S），条目也更加清晰。Resharper中这个功能的快捷键是Ctrl+Alt+J，然后你就可以选择将当前行的代码包围到try-catch块或者using中了。这是很高效的方法，我们倾向于在开发的早期尽量不捕获异常，而在中后期才加入异常处理机制。于是你某一个时期有大量的工作是把他们扩到try-catch块中。而你要使用支持dispose对象时，最好的方法是使用using块。（卖蛋糕的，当我知道我的代码不是最优的时候，我总是寝食难安），这里自然也有把代码扩到region块中的功能，也是常用功能之一。</p><h4>调整方法的位置</h4><p>前面我曾说过，如果要调整方法的位置，可以在代码结构窗口中拖放操作。如果你觉得只是把一个方法移动到前面去，却不得不打开代码结构窗口太过重量级，那么有轻量级的方法：当光标位于方法的名称上时，用Ctrl+Shift+上下键就可以移动方法的位置，包括方法的xml注释，但如果你用的不是三个/的xml注释而是两个/的，那么就对不起了。<br/></p><h4>其他琐碎的功能</h4><p>你肯定常常会复制粘贴当前行的代码，例如在使用StringBuilder.Append的时候，Ctrl+D可以简化你Ctrl+C,Ctrl+V的工作。</p><p>曾经有一个组合键可以注释掉当前行，还有另一个是取消注释，但是我已经淡忘了，因为Ctrl+/才应该是真正属于它的快捷键，再次按下就可以取消注释。</p><p>关于Resharper的重构功能就是这些，我可能天真地把很多额外功能都算在重构里了，但是它确实能够帮助你快速的对代码进行调整和优化。所以，请不要深究我对重构的概念认识是不是混乱。</p><h4>增强的浏览功能</h4><p>浏览参数的方式：</p><p>输入方法的时候，我们已经习惯了由IDE提供给我们的参数提示，极大了方便了我们选择重载方法。在没有Resharper的环境下，Visual Studio已经做到了。那么为什么Resharper还要增强这个功能并大获好评的。试问，Visual Studio那窄窄的一行参数提示有没有让你觉得憋屈。我们有19寸的大屏幕，1600的分辨率，却不得不盯着那窄条条，小心翼翼的按着上下键寻找我们需要的重载。至少，开发Resharper的家伙是受不了这种憋屈的，于是大开大阖版的参数列表出现了，长长的参数重载被以列表的形式展现出来，当你在使用GDT+方法，看到巨大的参数重载时，你会从心底里发出感叹：卖蛋糕的。</p><p>同时，Resharper展示参数的快捷键变成了Ctrl+P，如果你觉得屏蔽了打印的快捷键简直是在开玩笑的话，那么问问你自己有多少次打印过自己的代码。</p><h4>浏览打开过的文档：</h4><p>我窃以为你已经知道了在Visual Studio中切换文档的方式，它们包括：</p><p style="border: 0.75pt dashed #3382ad; padding: 2pt 4pt; font-size: 10.5pt">Ctrl+Alt+<span style="color: #3382ad">上下方向键，可以在打开的文档中切换；</span><br/>Ctrl+Tab<span style="color: #3382ad">，不仅可以在文档之前切换，并可以切换到解决方案文件夹，属性视图去，需要按左右键。</span></p><p>但是怎么样打开最近编辑后关闭的文件呢，Visual Studio很客气的又没有提供此功能，于是留给了Resharper。在我这里这个快捷键是Ctrl+E,Ctrl+E，没错，按两次。如果你的不是，那么在Resharper-View-Recent Files菜单下看看它是什么。因为你会时常用到。打开一个文件的列表，用方向键选择并回车就会在编辑器中打开。</p><p>很多人说Resharper的性能问题，我想，一个可能的原因是打开的文档太多了，如果你有时刻关闭不需要的文档的习惯，性能或许不会那么差，并且你可以随时打开这些你关闭了的文档，就像在已经打开的文档中切换一样的方便。</p><p>我的团队中没有用到敏捷开发那些高级的东西，但是我们还是保持着每次改动都仅涉及两三个文件的好习惯，并且频繁的commite到源代码服务器上去。所以，我每次真正要编辑的文件不多，性能不是问题。</p><p>和大家分享了很多Resharper使用的技巧，点点滴滴都已经融入我日常的开发工作中了。当然很不全面，例如与Nunit的集成，由于我们不是测试驱动，所以没有任何体验，自然也不敢大放厥词；也很主观，我觉得它好，你可能觉得它不好，萝卜青菜各有所爱。再说，它也不是没有白痴的地方，在文档上点右键增加的一个Close All功能，可以关闭所有打开的文档，关闭了干什么，对着一个空白的屏幕发呆么？我觉得原生的“除此之外全部关闭”就够了。还有一个定位的功能（Locate in Solution Explorer），真是没用，如果你在VS选项中设置了，在解决方案管理器中跟踪活动项，那么VS自动就给你定位了。</p><p>不管怎么说，它带给我更快更方便的开发体验，把我从一些琐碎的，不人性化的功能中解放出来。从这一点上来说，我很希望越来越多的人喜欢上它，开始用它，并帮助它更好的发展。</p><h2>Resharper和VisualStudio性能优化建议</h2><h3>提升性能</h3><p>我们不断地确保ReSharper的正常工作在现代硬件和中型和大型的解决方案，没有任何调整。</p><p>我们相信，Visual Studio的开发人员正在努力实现同样的事情，试图通过加快ReSharper的过时的硬件，你剥夺了强大的功能，可以加快你的开发表现自己。</p><p>如果您遇到与Visual Studio和ReSharper的性能问题，应用性能优化的列表。所给出的一些技巧是ReSharper的特定的，而另一些会VS性能，你是否已经安装了ReSharper的或没有影响。<a name="t1"></a></p><h3>为ReSharper加速</h3><h4>禁用代码分析当前文件</h4><p>您可以按暂时禁用代码分析当前文件的<span style="color: rgb(255, 0, 0);">Ctrl + Alt + Shift + 8</span>。再次按下该快捷方式将重新启用的分析。你可以发现当前文件的状态指示灯代码分析的状态：</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq0gduwf5j209o04kq34.jpg"/>如果您要绑定一个不同的快捷方式进行此操作，寻找<span style="color: rgb(255, 0, 0);">ReSharper_EnableDaemon</span>命令。</p><h4>禁用代码分析特定的文件</h4><p>你可以告诉ReSharper的跳过分析某些文件，而无需打开它们。例如，你可以跳过包含行之有效的算法文件，不发生大的变化。要做到这一点，到<span style="color: rgb(255, 0, 0);">ReSharper|Options</span>，然后选择<span style="color: rgb(255, 0, 0);">Code Inspection | Settings</span>。点击<span style="color: rgb(255, 0, 0);">Project to ignore</span>下的<span style="color: rgb(255, 0, 0);">Add</span>，并使用弹出的对话框中挑中的文件和文件夹跳过。您也可以跳过指定的文件的文件掩码。最有可能的，你会发现，所有的文件，你禁用代码分析的<span style="color: rgb(255, 0, 0);">Ctrl + Alt + Shift + 8</span>已经在那里。</p><h4>关闭解决方案范围的分析</h4><p>在非常大的项目，打开<a href="http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Solution-Wide_Analysis.html">解决方案范围的分析</a>可能会导致性能下降，特别是在那么强大的硬件。如果你觉得这个分析中占用太多的资源，只需将其关闭：<span style="color: rgb(255, 0, 0);">右击Visual Studio的右下角，选择Analyze Errors in Solution或Pause Analysis</span>。</p><p>一个对话框会弹出询问您是否要关闭提示。点&#39;Yes&#39;，你就大功告成了。</p><p><img src="http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0ge7heyj207o07mjrp.jpg"/></p><h4>禁用上下文行动</h4><p>在ReSharper的选项，进入<span style="color: rgb(255, 0, 0);">CodeEditing|ContextAction和CodeEditing| [语言] |上下文</span>的动作，然后取消选中不那么对您有所帮助的选项。</p><h4>加快打字</h4><p>如果您遇到减速打字时，你可以在关闭<span style="color: rgb(255, 0, 0);">ReSharper |&nbsp;Environment |Options|IntelliSense|CompletionAppearance</span>：</p><p><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq0geovn6j20ki0awgoi.jpg"/></p><p>如果这样没有帮助，切换到下内置在Visual Studio智能感知的<span style="color: rgb(255, 0, 0);">ReSharper | Options |Environment| IntelliSense |General</span>：</p><p><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq0gf9a06j20ki09ijuf.jpg"/></p><h4>禁止格式</h4><p>为了加快打字，你还可以禁用下自动格式选项的<span style="color: rgb(255, 0, 0);">ReSharper | Options | Environment | General </span>，以避免代码打字时格式化：</p><p><img src="http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0gfu1nqj20ki09tacv.jpg"/></p><h4>加快代码模板</h4><p>为加快扩大代码模板，你可以关掉<span style="color: rgb(255, 0, 0);">重新格式化，并缩短合格的参考</span>，您使用的选项模板：</p><p><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq0gg5behj20bc06kwes.jpg"/></p><p>有关编辑代码模板的详细信息，请参阅<a href="http://www.jetbrains.com/resharper/webhelp/Templates__Creating_and_Editing_Templates__Editing_a_Template.html">此帮助条目</a>。</p><h4>禁止单元测试</h4><p>如果你不使用ReSharper的单元测试运行，可以通过关闭它节省处理时间。去<span style="color: rgb(255, 0, 0);">ReSharper|Options|Tools|UnitTesting</span>，并明确了相应的复选框：</p><p style="font-size: 10.5pt"><img src="http://ww2.sinaimg.cn/large/87c01ec7gy1fsq0ggoqgbj20ki08q76n.jpg"/></p><h4>关闭导航栏</h4><p>如果您使用的<a href="http://www.jetbrains.com/resharper/webhelp/Reference__Windows__File_Structure_Window.html">文件结构</a> 的窗口，那么你可能不使用导航栏上的编辑器的顶部。如果是这样，你可以通过取消选中相应的复选框以<span style="color: rgb(255, 0, 0);">禁用工具|选项|文本编辑器| C＃</span>。</p><h4>如果没有帮助</h4><p>如果你已经试过了上述的一切，表现仍下跌，你可以暂时禁用ReSharper的，并检查是否有放缓的原因。禁用/启用ReSharper的，到<span style="color: rgb(255, 0, 0);">工具|扩展和更新| ReSharper</span> ，点击禁用/启用。</p><p>如果禁用ReSharper的有助于提高性能，但你还是要偶尔使用它的代码清理，格式化或分析，你可能想有一个快速切换ReSharper的开启和关闭的快捷方式。这里是如何做到这一点：<br/>转到<span style="color: rgb(255, 0, 0);">工具|选项|环境|键盘并找到ReSharper_ToggleSuspended命令</span>，然后按一些快捷键，然后单击分配</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq0gh62gfj20ki09etas.jpg"/></p><h3>已知的性能问题</h3><p>以下是已知的性能问题及其相应的解决方案的列表。</p><h4>ReSharper的升级后的性能下降</h4><p>如果您最近更新的ReSharper的观察与被打开了与以前版本的解决方案，性能下降，你可以尝试通过清除ReSharper的缓存和删除解决方案，以加快事情了名为.suo文件。</p><p>要清除高速缓存，去<span style="color: rgb(255, 0, 0);">ReSharper|Options|Environment|General</span>，点击<span style="color: rgb(255, 0, 0);">ClearCaches</span>：</p><p><img src="http://ww1.sinaimg.cn/large/87c01ec7gy1fsq0ghj37kj20fu07njrx.jpg"/></p><p>性能注意事项： 储存在系统临时文件夹缓存可提供额外的好处，比如在项目的内容是通过Dropbox的或类似手段同步案件的能力。此外，性能可以的，如果你的系统临时文件夹映射到一个更快的存储介质，如高性能的固态硬盘或RAM盘得到改善。</p><h3>已知的兼容性问题</h3><h4>其他Visual Studio扩展</h4><p style="margin-top: 7.5pt; margin-bottom: 7.5pt; font-size: 10.5pt">主要的兼容性问题已经观察到了以下产品：</p><ul type="disc" class=" list-paddingleft-2"><li><p>DevExpress CodeRush/Refactor Pro (incompatible)</p></li><li><p>Telerik JustCode (incompatible)</p></li><li><p>Whole Tomato Visual Assist</p></li><li><p>Productivity Power Tools</p></li></ul><p>性能下降已经观察到了以下产品</p><ul type="disc" class=" list-paddingleft-2"><li><p>Some versions of the StyleCop ReSharper plug-in</p></li><li><p>PowerCommands for Visual Studio</p></li></ul><p>也有<a href="http://tech.trailmax.info/2014/01/speed-up-razor-files-editing-web-essentials/">报道</a>在网络精华促进低性能的同时，编辑.cshtml文件。如果你受到这个问题，可以考虑将工具|选项|Web Essentials设置Auto-format HTML on Enter为false。</p><h4>运行Parallels Desktop的Mac</h4><p>如果你正在运行在Mac上使用的Parallels Desktop的Windows虚拟机的Visual Studio，ReSharper的智能感知列表可能会呈现很慢。</p><p>如果这种情况发生在你的设置中，考虑从相干模式切换到全屏模式。用于在两个模式之间进行切换的准则，请参阅<a href="http://kb.parallels.com/en/115171">Parallels的知识库条目</a>。</p><h2>改进Visual Studio的性能</h2><p>开始调整的Visual Studio设置之前，请检查最新的Service Pack和修补程序的安装。</p><p>下面是相关链接：<a href="http://connect.microsoft.com/VisualStudio/Downloads">http://connect.microsoft.com/VisualStudio/Downloads</a></p><h4>加快滚动编辑</h4><p>用编辑器滚动的问题就出现了，由于硬件加速渲染的编辑器。如果您遇到这个问题，尝试下关闭下列选项<span style="color: rgb(255, 0, 0);">工具|选项|环境|通用</span>：</p><ul type="disc" class=" list-paddingleft-2"><li><p>基于客户端性能自动调整视觉体验</p></li><li><p>使用硬件图形加速（如果可用）</p></li></ul><p><img src="http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0gi2zazj20ki07w0v5.jpg"/></p><h4>节省时间启动</h4><p>关闭起始页和新闻频道可能会节省一些时间启动。要做到这一点，到<span style="color: rgb(255, 0, 0);">工具|选项|环境</span>并选择开机时显示空环境。</p><h4>清除Web缓存</h4><p>如果您使用的Web项目，Web缓存可能会放缓的Visual Studio。清理，删除下的一切％LOCALAPPDATA％\ MICROSOFT \ WebSiteCache。</p><h4>禁用未使用的扩展</h4><p>转到<span style="color: rgb(255, 0, 0);">工具|扩展和更新</span>，通过该列表，并检查是否真的需要它们。您可以卸载或禁用未使用的。</p><h4>卸载未使用的项目</h4><p>如果你不工作的一些项目，你可以从Visual Studio卸载他们，并在需要时重新加载他们。对项目或解决方案资源管理器解决方案文件夹，右键单击并选择卸载项目，或在解决方案文件夹卸载项目-这将加快Visual Studio和ReSharper双方。</p><h4>禁用XAML可视化编辑器</h4><p>在大型项目中，编辑XAML文件中可以感受到，即使在良好的硬件慢。如果你不使用可视化XAML编辑器，你可以部分通过禁用它解决问题。</p><p>要做到这一点，在Solution Explorer中的XAML文件单击鼠标右键，然后选择打开方式。在出现的对话框中，选择源代码（文本）编辑器，然后单击设为默认值。</p><p>或者，去<span style="color: rgb(255, 0, 0);">工具|选项|文本编辑器| XAML |杂项</span>，然后取消选择总是完全XAML视图中打开的文档。</p><p>英文出处：<a href="http://confluence.jetbrains.com/display/NETCOM/Ultimate+Guide+to+Speeding+Up+ReSharper+%28and+Visual+Studio%29">http://confluence.jetbrains.com/display/NETCOM/Ultimate+Guide+to+Speeding+Up+ReSharper+%28and+Visual+Studio%29</a></p>', N'2017-09-15 12:44:51.0000000', N'2018-06-27 20:30:27.9510405', N'0', N'7', N'1853ab56-0772-49fd-8ceb-f9d9f7485e73.docx', N'1', N'admin@masuit.com', N'VisualStudio,Resharper,性能优化', N'3', N'0', N'5', N'1', N'所谓工欲善其事，必先利其器。尽管visual studio本身已经非常强大，但优秀的插件仍然可以帮开发者大大提高效率。
沿袭了jetbrains开发工具一贯的优良传统，ReSharper拥有高度智能的纠错，30多种高级代码重构功能，方便的单元测试工具，快速导航、检索，以及一键格式化代码，自动代码生成和模板功能等很多特性。', N'https://wx1.sinaimg.cn/mw690/0060lm7Tly1fsqnh5k97ej310f0lktfj.jpg', NULL, NULL)
GO

SET IDENTITY_INSERT [dbo].[Post] OFF
GO


-- ----------------------------
-- Table structure for PostAccessRecord
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[PostAccessRecord]') AND type IN ('U'))
	DROP TABLE [dbo].[PostAccessRecord]
GO

CREATE TABLE [dbo].[PostAccessRecord] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [PostId] int  NOT NULL,
  [AccessTime] datetime  NOT NULL,
  [ClickCount] int  NOT NULL,
  [Status] int  NOT NULL
)
GO

ALTER TABLE [dbo].[PostAccessRecord] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for PostHistoryVersion
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[PostHistoryVersion]') AND type IN ('U'))
	DROP TABLE [dbo].[PostHistoryVersion]
GO

CREATE TABLE [dbo].[PostHistoryVersion] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Content] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [ViewCount] int  NOT NULL,
  [ModifyDate] datetime2(7)  NOT NULL,
  [CategoryId] int  NOT NULL,
  [PostId] int  NOT NULL,
  [ResourceName] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [IsWordDocument] bit  NOT NULL,
  [Email] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [Label] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [Status] int  NOT NULL,
  [ProtectContent] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[PostHistoryVersion] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for SearchDetails
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[SearchDetails]') AND type IN ('U'))
	DROP TABLE [dbo].[SearchDetails]
GO

CREATE TABLE [dbo].[SearchDetails] (
  [id] int  IDENTITY(1,1) NOT NULL,
  [KeyWords] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [SearchTime] datetime2(7) DEFAULT (getdate()) NOT NULL,
  [IP] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[SearchDetails] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of SearchDetails
-- ----------------------------
SET IDENTITY_INSERT [dbo].[SearchDetails] ON
GO

INSERT INTO [dbo].[SearchDetails] ([id], [KeyWords], [SearchTime], [IP]) VALUES (N'16231', N'idea', N'2017-10-21 15:02:47.3456658', N'1.202.169.226')
GO

INSERT INTO [dbo].[SearchDetails] ([id], [KeyWords], [SearchTime], [IP]) VALUES (N'16232', N'qq', N'2017-10-21 15:09:21.7203503', N'66.249.71.60')
GO

INSERT INTO [dbo].[SearchDetails] ([id], [KeyWords], [SearchTime], [IP]) VALUES (N'16233', N'qq', N'2017-10-22 00:17:51.7515877', N'222.211.207.130')
GO

SET IDENTITY_INSERT [dbo].[SearchDetails] OFF
GO


-- ----------------------------
-- Table structure for Seminar
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Seminar]') AND type IN ('U'))
	DROP TABLE [dbo].[Seminar]
GO

CREATE TABLE [dbo].[Seminar] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Title] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [SubTitle] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Description] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int  NOT NULL
)
GO

ALTER TABLE [dbo].[Seminar] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of Seminar
-- ----------------------------
SET IDENTITY_INSERT [dbo].[Seminar] ON
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'1', N'科学上网', N'老湿机日常飙车必备工具', N'打开世界的大门，真心希望大家都能够突破网络封锁、获得真相，日常飙车必备神器，老湿机带你弯道超车。请系好安全带，飙车有风险，驾驶需谨慎！', N'0')
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'2', N'开源项目', N'博主开源项目', N'博主自主研发的开源项目，本专题搜集与开源项目有关的文章和资源', N'0')
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'3', N'微软系统', N'Windows和RamOS系统', N'博主优化封装的Windows和RamOS系统，极其好用！', N'0')
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'4', N'生产力工具', N'工欲善其事，必先利其器', N'所谓工欲善其事，必先利其器，尽管我们的生产力还是很强大了，但是有了他们，会有你意想不到的收获！', N'0')
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'5', N'资源中心', N'编程爱好者资源', N'本专题包含各类编程类资源学习视频，供编程初学者下载，本专题资源完全免费，并且无加密，如果你是通过某宝、或是其他论坛等渠道，通过任何付费的方式获取到本资源，请直接退款并在相应的平台举报，如果是论坛的，请将本页链接分享到你购买源的评论区，告诫他人谨防上当，或者直接将本页链接转发分享给有需要的人。', N'0')
GO

INSERT INTO [dbo].[Seminar] ([Id], [Title], [SubTitle], [Description], [Status]) VALUES (N'6', N'稀缺资源', N'互联网上重金难求的被和谐资源', N'互联网上仅存的稀缺资源，不收取任何费用，仅用于个人研究和使用，发扬互联网分享精神，专注收藏与分享。', N'0')
GO

SET IDENTITY_INSERT [dbo].[Seminar] OFF
GO


-- ----------------------------
-- Table structure for SeminarPost
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[SeminarPost]') AND type IN ('U'))
	DROP TABLE [dbo].[SeminarPost]
GO

CREATE TABLE [dbo].[SeminarPost] (
  [Post_Id] int  NOT NULL,
  [Seminar_Id] int  NOT NULL
)
GO

ALTER TABLE [dbo].[SeminarPost] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for SeminarPostHistoryVersion
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[SeminarPostHistoryVersion]') AND type IN ('U'))
	DROP TABLE [dbo].[SeminarPostHistoryVersion]
GO

CREATE TABLE [dbo].[SeminarPostHistoryVersion] (
  [PostHistoryVersion_Id] int  NOT NULL,
  [Seminar_Id] int  NOT NULL
)
GO

ALTER TABLE [dbo].[SeminarPostHistoryVersion] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Table structure for SystemSetting
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[SystemSetting]') AND type IN ('U'))
	DROP TABLE [dbo].[SystemSetting]
GO

CREATE TABLE [dbo].[SystemSetting] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Name] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Value] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL
)
GO

ALTER TABLE [dbo].[SystemSetting] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Records of SystemSetting
-- ----------------------------
SET IDENTITY_INSERT [dbo].[SystemSetting] ON
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'2', N'logo', N'/assets/images/logo.png', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'3', N'Title', N'懒得勤快的博客_全栈开发者_互联网分享精神', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'4', N'Brand', N'懒得勤快，全栈开发者，互联网分享精神！', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'5', N'EmailFrom', N'root@masuit.com', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'6', N'EmailPwd', N'123', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'7', N'SMTP', N'smtp.qq.com', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'8', N'ReceiveEmail', N'admin@masuit.com', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'9', N'Slogan', N'懒得勤快，全栈开发者，互联网分享精神！', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'10', N'Keyword', N'懒得勤快,懒得勤快的博客,全栈开发者,.net开发技术,视频教程无加密,masuit.com,1170397736,masuit,软件绿化,科学上网,ldqk,TeamViewer v13.1.3629 破解 无限改id,会声会影,HyperSnap,Resharper Ultimate 2018,Navicat,xmind,黑科技', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'11', N'Description', N'懒得勤快,懒得勤快的博客,全栈开发者,全栈工程师,.net开发技术,视频教程无加密,masuit,masuit.com,1170397736,去广告,软件绿化,操作系统封装,ldqk,免费资源分享,TeamViewer v13.1.3629 破解 无限改id,xshell plus 破解版,会声会影,HyperSnap,Resharper Ultimate 2018,Navicat,xmind,黑科技,科学上网', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'12', N'Donate', N'https://ww4.sinaimg.cn/large/87c01ec7gy1fsqnp79malj20q911qtbd.jpg', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'13', N'Copyright', N'<p>Copyright@懒得勤快 保留所有权利. | Powered&amp;Developed By 懒得勤快 |&nbsp;&nbsp;<a href="/sitemap.html">网站地图</a> |&nbsp;<a href="/donate" target="_self">赞助</a>&nbsp;|&nbsp;<a href="http://masuit.com/disclaimer" target="_self" style="white-space: normal;">免责声明</a></p><p>火ICP备NMP |&nbsp;网站由<span style="color: rgb(255, 0, 0);">生于忧患(55**84490)</span>提供计算支持</p>', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'14', N'ReservedName', N'懒得勤快|system|admin|Administrator|root', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'15', N'Disclaimer', N'<p style="white-space: normal;"><span style="color: rgb(255, 0, 0); font-size: 15px; font-family: Wingdings;"><span style="color: rgb(255, 0, 0); font-size: 15px; font-family: Wingdings;">l<span style="font-variant-numeric: normal; font-stretch: normal; font-size: 9px; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;</span></span><span style="font-family: Wingdings; color: rgb(255, 0, 0); line-height: 20px; font-size: 16px;">博主在此发文（包括但不限于汉字、拼音、拉丁字母）均为随意敲击键盘所出，用于检验本人电脑键盘录入、屏幕显示的机械、光电性能，并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表，不会网购无快递。</span></span></p><p style="white-space: normal;"><span style="color: rgb(255, 0, 0);"><span style="font-size: 15px; font-family: Wingdings;">l<span style="font-variant-numeric: normal; font-stretch: normal; font-size: 9px; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;</span></span><span style="font-size: 16px;line-height:20px;">文章内容部分来源于互联网，不代表本人的任何立场；涉及到的软件来源于互联网，仅供个人下载使用，版权归该软件开发者所有，请勿用于商业用途，下载后请于24小时内删除，请支持正版！因下载本站资源造成的损失，全部责任由使用者本人承担！如果你是原作者，认为本文内容对您的权益有所侵犯，请联系博主进行投诉，待博主进行严格地审查和背景调查后，情况属实的将在三天内将本文删除或修正。</span></span></p><p style="white-space: normal;"><span style="color: rgb(255, 0, 0); font-size: 15px; font-family: Wingdings;">l<span style="font-variant-numeric: normal; font-stretch: normal; font-size: 9px; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;</span></span><span style="color: rgb(255, 0, 0); line-height: 20px;">博主的文章没有高度、深度和广度，只是凑字数。由于博主的水平不高（其实是个菜B），不足和错误之处在所难免，希望大家能够批评指出。</span><br/></p><p style="white-space: normal;"><span style="color: rgb(255, 0, 0);"><span style="font-size: 15px; font-family: Wingdings;">l<span style="font-variant-numeric: normal; font-stretch: normal; font-size: 9px; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;</span></span><span style="font-size: 16px;line-height:20px;">博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章，请原谅博主成为一个无耻的文档搬运工！</span></span></p><p style="white-space: normal;"><span style="color: rgb(255, 0, 0);"><span style="font-size: 15px; font-family: Wingdings;">l<span style="font-variant-numeric: normal; font-stretch: normal; font-size: 9px; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;</span></span><span style="font-size: 16px;line-height:20px;"></span></span><span style="color: rgb(255, 0, 0); font-size: 16px; line-height: 20px;">博主只是一名普通的互联网从业者，不懂修电脑，不会卖电脑，不会帮你盗号，不会破解开机密码，找不回你丢失的手机等，如有这样的想法请绕道！</span></p>', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'16', N'SmtpPort', N'587', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'17', N'DonateWechat', N'https://ww3.sinaimg.cn/large/87c01ec7gy1fsqnp6iaj4j20u715fjuc.jpg', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'18', N'DonateQQ', N'https://ww2.sinaimg.cn/large/87c01ec7gy1fsqnp77bktj20i30jxq42.jpg', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'19', N'PathRoot', N'D:', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'20', N'Domain', N'masuit.com', N'1')
GO

INSERT INTO [dbo].[SystemSetting] ([Id], [Name], [Value], [Status]) VALUES (N'21', N'DonateJingdong', N'https://ww4.sinaimg.cn/large/87c01ec7gy1fsqnp6uc00j20ng0nt75j.jpg', N'1')
GO

SET IDENTITY_INSERT [dbo].[SystemSetting] OFF
GO


-- ----------------------------
-- Table structure for UserInfo
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[UserInfo]') AND type IN ('U'))
	DROP TABLE [dbo].[UserInfo]
GO

CREATE TABLE [dbo].[UserInfo] (
  [Id] int  IDENTITY(1,1) NOT NULL,
  [Username] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Password] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [SaltKey] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [IsAdmin] bit DEFAULT ((0)) NOT NULL,
  [Email] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [QQorWechat] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [NickName] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [Status] int DEFAULT ((0)) NOT NULL,
  [AccessToken] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
  [Avatar] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[UserInfo] SET (LOCK_ESCALATION = TABLE)
GO


-- ----------------------------
-- Procedure structure for sp_getChildrenMenusByParentId
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getChildrenMenusByParentId]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getChildrenMenusByParentId]
GO

CREATE PROCEDURE [dbo].[sp_getChildrenMenusByParentId]
  @pid AS int =0 
AS
BEGIN
	WITH Tree
 AS (SELECT * FROM Menu WHERE Id = @pid  --第一个查询作为递归的基点(锚点)
     UNION ALL
     SELECT Menu.*     --第二个查询作为递归成员， 下属成员的结果为空时，此递归结束。
       FROM Tree INNER JOIN Menu ON Tree.Id = Menu.ParentId) 
 SELECT * FROM Tree
END
GO


-- ----------------------------
-- Procedure structure for sp_getChildrenCommentByParentId
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getChildrenCommentByParentId]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getChildrenCommentByParentId]
GO

CREATE PROCEDURE [dbo].[sp_getChildrenCommentByParentId](@ParentId int)
                                                                    AS
                                                                    BEGIN    
                                                                        WITH Tree
                                                                            AS (SELECT * FROM Comment WHERE Id = @ParentId  --第一个查询作为递归的基点(锚点)
                                                                                UNION ALL
                                                                                SELECT Comment.*     --第二个查询作为递归成员， 下属成员的结果为空时，此递归结束。
                                                                                  FROM Tree INNER JOIN Comment ON Tree.Id = Comment.ParentId) 
                                                                            SELECT * FROM Tree   
                                                                    END
GO


-- ----------------------------
-- Procedure structure for sp_getParentCommentIdByChildId
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getParentCommentIdByChildId]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getParentCommentIdByChildId]
GO

CREATE PROCEDURE [dbo].[sp_getParentCommentIdByChildId]
  @cid AS int =1 
AS
BEGIN
	WITH Tree
 AS (SELECT * FROM Comment WHERE Id = @cid  --第一个查询作为递归的基点(锚点)
     UNION ALL
     SELECT Comment.*     --第二个查询作为递归成员， 下属成员的结果为空时，此递归结束。
       FROM Tree INNER JOIN Comment ON Tree.ParentId = Comment.Id) 
 SELECT top 1 Id FROM Tree  ORDER BY Id
END
GO


-- ----------------------------
-- Procedure structure for sp_getChildrenLeaveMsgByParentId
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getChildrenLeaveMsgByParentId]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getChildrenLeaveMsgByParentId]
GO

CREATE PROCEDURE [dbo].[sp_getChildrenLeaveMsgByParentId](@ParentId int)
                                                                    AS
                                                                    BEGIN    
                                                                        WITH Tree
                                                                            AS (SELECT * FROM LeaveMessage WHERE Id = @ParentId  --第一个查询作为递归的基点(锚点)
                                                                                UNION ALL
                                                                                SELECT LeaveMessage.*     --第二个查询作为递归成员， 下属成员的结果为空时，此递归结束。
                                                                                  FROM Tree INNER JOIN LeaveMessage ON Tree.Id = LeaveMessage.ParentId) 
                                                                            SELECT * FROM Tree   
                                                                    END
GO


-- ----------------------------
-- Procedure structure for sp_getParentMessageIdByChildId
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getParentMessageIdByChildId]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getParentMessageIdByChildId]
GO

CREATE PROCEDURE [dbo].[sp_getParentMessageIdByChildId]
  @cid AS  int=1 
AS
BEGIN
	WITH Tree
                                                                            AS (SELECT * FROM LeaveMessage WHERE Id = @cid  --第一个查询作为递归的基点(锚点)
                                                                                UNION ALL
                                                                                SELECT LeaveMessage.*     --第二个查询作为递归成员， 下属成员的结果为空时，此递归结束。
                                                                                  FROM Tree INNER JOIN LeaveMessage ON Tree.ParentId = LeaveMessage.Id) 
                                                                            SELECT top 1 Id FROM Tree ORDER BY id  
END
GO


-- ----------------------------
-- Procedure structure for sp_getInterviewsCurrentMonthDetailsByDays
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_getInterviewsCurrentMonthDetailsByDays]') AND type IN ('P', 'PC', 'RF', 'X'))
	DROP PROCEDURE[dbo].[sp_getInterviewsCurrentMonthDetailsByDays]
GO

CREATE PROCEDURE [dbo].[sp_getInterviewsCurrentMonthDetailsByDays] (@recent INT) AS
                                                                    BEGIN
                                                                     SELECT
                                                                      DATEPART(DAY, ViewTime) AS vt,
                                                                      COUNT (ViewTime) AS [count]
                                                                     FROM
                                                                      [dbo].[Interview]
                                                                     WHERE
                                                                      DATEDIFF(DAY, ViewTime, GETDATE()) < @recent
                                                                     AND DATEPART(MONTH, ViewTime) = DATEPART(MONTH, GETDATE())
                                                                     GROUP BY
                                                                      DATEPART(DAY, ViewTime)
                                                                     ORDER BY
                                                                      vt
                                                                     END
GO


-- ----------------------------
-- Primary Key structure for table __MigrationHistory
-- ----------------------------
ALTER TABLE [dbo].[__MigrationHistory] ADD CONSTRAINT [PK____Migrat__EE2FFF92C060A57B] PRIMARY KEY CLUSTERED ([MigrationId], [ContextKey])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Broadcast
-- ----------------------------
ALTER TABLE [dbo].[Broadcast] ADD CONSTRAINT [PK__Broadcas__3214EC0737D2C981] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Category
-- ----------------------------
ALTER TABLE [dbo].[Category] ADD CONSTRAINT [PK__Category__3214EC075095984D] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table Comment
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_PostId]
ON [dbo].[Comment] (
  [PostId] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table Comment
-- ----------------------------
ALTER TABLE [dbo].[Comment] ADD CONSTRAINT [PK__Comment__3214EC076E273D41] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Contacts
-- ----------------------------
ALTER TABLE [dbo].[Contacts] ADD CONSTRAINT [PK__Contacts__3214EC0753A80CD9] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Donate
-- ----------------------------
ALTER TABLE [dbo].[Donate] ADD CONSTRAINT [PK_dbo.Donate] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table InternalMessage
-- ----------------------------
ALTER TABLE [dbo].[InternalMessage] ADD CONSTRAINT [PK_dbo.InternalMessage] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table Interview
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_ViewTime]
ON [dbo].[Interview] (
  [ViewTime] DESC
)
GO


-- ----------------------------
-- Primary Key structure for table Interview
-- ----------------------------
ALTER TABLE [dbo].[Interview] ADD CONSTRAINT [PK__Intervie__3214EC07C8A184B2] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table InterviewDetail
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_InterviewId]
ON [dbo].[InterviewDetail] (
  [InterviewId] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table InterviewDetail
-- ----------------------------
ALTER TABLE [dbo].[InterviewDetail] ADD CONSTRAINT [PK_dbo.InterviewDetail] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Issue
-- ----------------------------
ALTER TABLE [dbo].[Issue] ADD CONSTRAINT [PK_dbo.Issue] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table LeaveMessage
-- ----------------------------
ALTER TABLE [dbo].[LeaveMessage] ADD CONSTRAINT [PK__LeaveMes__3214EC07F8380071] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Links
-- ----------------------------
ALTER TABLE [dbo].[Links] ADD CONSTRAINT [PK__Links__3214EC072249A317] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table LoginRecord
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_UserInfoId]
ON [dbo].[LoginRecord] (
  [UserInfoId] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table LoginRecord
-- ----------------------------
ALTER TABLE [dbo].[LoginRecord] ADD CONSTRAINT [PK_dbo.LoginRecord] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Menu
-- ----------------------------
ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [PK__Menu__3214EC075415836B] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Misc
-- ----------------------------
ALTER TABLE [dbo].[Misc] ADD CONSTRAINT [PK__Misc__3214EC078635B514] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Notice
-- ----------------------------
ALTER TABLE [dbo].[Notice] ADD CONSTRAINT [PK__Notice__3214EC07991D35C5] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table Post
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_CategoryId]
ON [dbo].[Post] (
  [CategoryId] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_ModifyDate]
ON [dbo].[Post] (
  [ModifyDate] DESC
)
GO


-- ----------------------------
-- Primary Key structure for table Post
-- ----------------------------
ALTER TABLE [dbo].[Post] ADD CONSTRAINT [PK__Post__3214EC07AB9CCCE4] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table PostAccessRecord
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_PostId]
ON [dbo].[PostAccessRecord] (
  [PostId] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table PostAccessRecord
-- ----------------------------
ALTER TABLE [dbo].[PostAccessRecord] ADD CONSTRAINT [PK_dbo.PostAccessRecord] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table PostHistoryVersion
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_CategoryId]
ON [dbo].[PostHistoryVersion] (
  [CategoryId] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_PostId]
ON [dbo].[PostHistoryVersion] (
  [PostId] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_ModifyDate]
ON [dbo].[PostHistoryVersion] (
  [ModifyDate] DESC
)
GO


-- ----------------------------
-- Primary Key structure for table PostHistoryVersion
-- ----------------------------
ALTER TABLE [dbo].[PostHistoryVersion] ADD CONSTRAINT [PK_dbo.PostHistoryVersion] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table SearchDetails
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_SearchTime]
ON [dbo].[SearchDetails] (
  [SearchTime] DESC
)
GO


-- ----------------------------
-- Primary Key structure for table SearchDetails
-- ----------------------------
ALTER TABLE [dbo].[SearchDetails] ADD CONSTRAINT [PK__SearchDe__3213E83FA3D795A7] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table Seminar
-- ----------------------------
ALTER TABLE [dbo].[Seminar] ADD CONSTRAINT [PK_dbo.Seminar] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table SeminarPost
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_Post_Id]
ON [dbo].[SeminarPost] (
  [Post_Id] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_Seminar_Id]
ON [dbo].[SeminarPost] (
  [Seminar_Id] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table SeminarPost
-- ----------------------------
ALTER TABLE [dbo].[SeminarPost] ADD CONSTRAINT [PK_dbo.SeminarPost] PRIMARY KEY CLUSTERED ([Post_Id], [Seminar_Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Indexes structure for table SeminarPostHistoryVersion
-- ----------------------------
CREATE NONCLUSTERED INDEX [IX_PostHistoryVersion_Id]
ON [dbo].[SeminarPostHistoryVersion] (
  [PostHistoryVersion_Id] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_Seminar_Id]
ON [dbo].[SeminarPostHistoryVersion] (
  [Seminar_Id] ASC
)
GO


-- ----------------------------
-- Primary Key structure for table SeminarPostHistoryVersion
-- ----------------------------
ALTER TABLE [dbo].[SeminarPostHistoryVersion] ADD CONSTRAINT [PK_dbo.SeminarPostHistoryVersion] PRIMARY KEY CLUSTERED ([PostHistoryVersion_Id], [Seminar_Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table SystemSetting
-- ----------------------------
ALTER TABLE [dbo].[SystemSetting] ADD CONSTRAINT [PK__SystemSe__3214EC077F496704] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Primary Key structure for table UserInfo
-- ----------------------------
ALTER TABLE [dbo].[UserInfo] ADD CONSTRAINT [PK__UserInfo__3214EC07F3FF4E46] PRIMARY KEY CLUSTERED ([Id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO


-- ----------------------------
-- Foreign Keys structure for table Comment
-- ----------------------------
ALTER TABLE [dbo].[Comment] ADD CONSTRAINT [FK__Comment__PostId__395884C4] FOREIGN KEY ([PostId]) REFERENCES [dbo].[Post] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table InterviewDetail
-- ----------------------------
ALTER TABLE [dbo].[InterviewDetail] ADD CONSTRAINT [FK_dbo.InterviewDetail_dbo.Interview_InterviewId] FOREIGN KEY ([InterviewId]) REFERENCES [dbo].[Interview] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table LoginRecord
-- ----------------------------
ALTER TABLE [dbo].[LoginRecord] ADD CONSTRAINT [FK_dbo.LoginRecords_dbo.UserInfo_UserInfoId] FOREIGN KEY ([UserInfoId]) REFERENCES [dbo].[UserInfo] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table Post
-- ----------------------------
ALTER TABLE [dbo].[Post] ADD CONSTRAINT [FK__Post__CategoryId__3A4CA8FD] FOREIGN KEY ([CategoryId]) REFERENCES [dbo].[Category] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table PostAccessRecord
-- ----------------------------
ALTER TABLE [dbo].[PostAccessRecord] ADD CONSTRAINT [FK_dbo.PostAccessRecords_dbo.Post_PostId] FOREIGN KEY ([PostId]) REFERENCES [dbo].[Post] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table PostHistoryVersion
-- ----------------------------
ALTER TABLE [dbo].[PostHistoryVersion] ADD CONSTRAINT [FK_dbo.PostHistoryVersion_dbo.Post_PostId] FOREIGN KEY ([PostId]) REFERENCES [dbo].[Post] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[PostHistoryVersion] ADD CONSTRAINT [FK_dbo.PostHistoryVersion_dbo.Category_CategoryId] FOREIGN KEY ([CategoryId]) REFERENCES [dbo].[Category] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table SeminarPost
-- ----------------------------
ALTER TABLE [dbo].[SeminarPost] ADD CONSTRAINT [FK_dbo.SeminarPost_dbo.Post_Post_Id] FOREIGN KEY ([Post_Id]) REFERENCES [dbo].[Post] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[SeminarPost] ADD CONSTRAINT [FK_dbo.SeminarPost_dbo.Seminar_Seminar_Id] FOREIGN KEY ([Seminar_Id]) REFERENCES [dbo].[Seminar] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO


-- ----------------------------
-- Foreign Keys structure for table SeminarPostHistoryVersion
-- ----------------------------
ALTER TABLE [dbo].[SeminarPostHistoryVersion] ADD CONSTRAINT [FK_dbo.SeminarPostHistoryVersion_dbo.PostHistoryVersion_PostHistoryVersion_Id] FOREIGN KEY ([PostHistoryVersion_Id]) REFERENCES [dbo].[PostHistoryVersion] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[SeminarPostHistoryVersion] ADD CONSTRAINT [FK_dbo.SeminarPostHistoryVersion_dbo.Seminar_Seminar_Id] FOREIGN KEY ([Seminar_Id]) REFERENCES [dbo].[Seminar] ([Id]) ON DELETE CASCADE ON UPDATE NO ACTION
GO

